import { defineConfig, loadEnv } from 'vite'
import react from '@vitejs/plugin-react'
import { resolve } from 'path'
import compressPlugin from 'vite-plugin-compression' //压缩插件

// https://vite.dev/config/
export default defineConfig(({ mode }) => {

  //获取环境变量 mode表示当前的环境 process.cwd()表示当前的目录
  const env = loadEnv(mode, process.cwd(), '')

  return {
    plugins: [react(),
    mode === 'production' && compressPlugin({
      ext: '.gz', //压缩之后的文件的后缀名
      algorithm: 'gzip',//压缩算法
      threshold: 10240,//文件大小于这个值的时候才进行压缩
      deleteOriginFile: false,//是否删除源文件
    })
    ],
    //定义当前的环境变量
    define: {
      'process.env': env
    },
    //配置路径别名
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src')
      }
    },
    server: {
      port: 3000, //自定义项目端口号
      open: true, //启动项目自动打开浏览器
      proxy: { //代理配置(跨域) 浏览器的同源策略(任意网站之间的协议，域名，端口号只要有一个不同 就是不同源)限制的
        '/api': {
          target: env.VITE_API_URL,
          changeOrigin: true, //允许跨域
          rewrite: (path) => path.replace(/^\/api/, '') //路径重置
        }
      }
    }
  }


})

